﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PROFIP.Persistence.DTO.Scales;
using PROFIP.Utils;

namespace PROFIP
{
    public partial class MADRSForm : ScaleForm
    {
        public MADRSForm(MainForm mainForm, MADRSDTO dto, int avaliationSheetIndex) : base(mainForm, dto, avaliationSheetIndex)
        {
            InitializeComponent();
            if (dto == null) return;

            Utilities.checkIndice(TristezaAparente, dto.TristezaAparente);
            Utilities.checkIndice(TristezaExpressa, dto.TristezaExpressa);
            Utilities.checkIndice(TensaoInterior, dto.TensaoInterior);
            Utilities.checkIndice(ReducaoDoSono, dto.ReducaoDoSono);
            Utilities.checkIndice(ReducaoDoApetite, dto.ReducaoDoApetite);
            Utilities.checkIndice(DificuldadeDeConcentracao, dto.DificuldadeDeConcentracao);
            Utilities.checkIndice(FaltaDeIniciativa, dto.FaltaDeIniciativa);
            Utilities.checkIndice(IncapacidadeParaSentir, dto.IncapacidadeParaSentir);
            Utilities.checkIndice(PensamentosPessimistas, dto.PensamentosPessimistas);
            Utilities.checkIndice(IdeacaoSuicida, dto.IdeacaoSuicida);
            Application.DoEvents();
        }

        private void onClose(object sender, FormClosingEventArgs e)
        {
            MADRSDTO dto = new MADRSDTO();
            dto.TristezaAparente = Utilities.getCheckedIndice(TristezaAparente);
            dto.TristezaExpressa = Utilities.getCheckedIndice(TristezaExpressa);
            dto.TensaoInterior = Utilities.getCheckedIndice(TensaoInterior);
            dto.ReducaoDoSono = Utilities.getCheckedIndice(ReducaoDoSono);
            dto.ReducaoDoApetite = Utilities.getCheckedIndice(ReducaoDoApetite);
            dto.DificuldadeDeConcentracao = Utilities.getCheckedIndice(DificuldadeDeConcentracao);
            dto.FaltaDeIniciativa = Utilities.getCheckedIndice(FaltaDeIniciativa);
            dto.IncapacidadeParaSentir = Utilities.getCheckedIndice(IncapacidadeParaSentir);
            dto.PensamentosPessimistas = Utilities.getCheckedIndice(PensamentosPessimistas);
            dto.IdeacaoSuicida = Utilities.getCheckedIndice(IdeacaoSuicida);
            base.mainForm.updateMADRS(dto, base.avaliationSheetIndex);
        }


        private void SingleSelect_ItemChecked(object sender, ItemCheckedEventArgs e)
        {
            Utilities.SingleSelect_ItemChecked(sender, e);
            updateScore();
        }

        private void updateScore()
        {
            int score = 0;
            List<ListView> controls = new List<ListView>();
            controls.Add(TristezaAparente);
            controls.Add(TristezaExpressa);
            controls.Add(TensaoInterior);
            controls.Add(ReducaoDoSono);
            controls.Add(ReducaoDoApetite);
            controls.Add(DificuldadeDeConcentracao);
            controls.Add(FaltaDeIniciativa);
            controls.Add(IncapacidadeParaSentir);
            controls.Add(PensamentosPessimistas);
            controls.Add(IdeacaoSuicida);

            foreach (ListView control in controls)
            {
                foreach (int index in control.CheckedIndices)
                {
                    score += index;
                    break;
                }
            }
            Score.Text = score + "";
            Application.DoEvents();
        }

        public String GetScore()
        {
            return Score.Text;
        }

    }
}
